//
// Created by kai-xu on 2023/2/21.
//

#ifndef ALIGN_MATRIX_INCLUDE_ALIGH_POSE_MATRIX_H_
#define ALIGN_MATRIX_INCLUDE_ALIGH_POSE_MATRIX_H_

#endif  // ALIGN_MATRIX_INCLUDE_ALIGH_POSE_MATRIX_H_
#include <Eigen/Core>
#include <Eigen/Geometry>
#include <exception>
#include <vector>

#include "common/basic_type.h"
bool gen_align_matrix(float* out, const int sd, std::vector<float> pcr,
                      std::vector<float> vs, const int32_t height,
                      const int32_t width, const Eigen::Matrix4f& pre_matrix,
                      const Eigen::Matrix4f& cur_matrix);

bool gen_ring_ray_map(float* circle_map_out, float* ray_map_out,
                      std::vector<float> const& Cam_Intrins,
                      std::vector<float> const& Cam_Extrins, float resize_scale,
                      Rect const& rect);